macro (add_hip_test_macro name)
  add_test_macro("${name}" ${ARGN})
  set_property(TEST "${name}" APPEND PROPERTY LABELS "HIP")
  set_property(TEST "${name}" APPEND PROPERTY ENVIRONMENT "AMD_LOG_LEVEL=4")
endmacro ()

add_hip_test_macro(HIP.ArchitectureOff HIPOnlyArchitectureOff)
if(CMake_TEST_HIP STREQUAL "nvidia")
  add_hip_test_macro(HIP.ArchSpecial HIPArchSpecial)
endif()
add_hip_test_macro(HIP.CompileFlags HIPOnlyCompileFlags)
add_hip_test_macro(HIP.EnableStandard HIPEnableStandard)
add_hip_test_macro(HIP.InferHipLang1 HIPInferHipLang1)
add_hip_test_macro(HIP.InferHipLang2 HIPInferHipLang2)
if(CMake_TEST_HIP STREQUAL "amd")
  # The NVIDIA CUDA compiler cannot handle device lambda markup.
  add_hip_test_macro(HIP.MathFunctions HIPOnlyMathFunctions)
endif()
add_hip_test_macro(HIP.MixedLanguage HIPMixedLanguage)
add_hip_test_macro(HIP.TryCompile HIPOnlyTryCompile)
add_hip_test_macro(HIP.WithDefs HIPOnlyWithDefs)
